I collect data at Fort Campbell, KY. Fort Campbell is in KY, but it also part of it is also TN. Fort Campbell is a military installation where there is approximately 105,000 acres of land with varying environments that include forests consisting of primarily deciduous trees, grasslands, wetlands, and agricultural fields. There are approximately 453 miles of streams scattered throughout the base.
Let’s look at a map of Kentucky and Tennessee to get an idea of my study area!
#Create map
ggplot() +
#states surrounding
geom_polygon(
data = state %>% filter(region %in% border_states),
aes(x = long, y = lat, group = group),
fill = "snow2", color = "black") +
#ky + tn with ALL counties
geom_polygon(data = ky_tn,
aes(x = long, y = lat, group = group),
fill = "azure", color = "black") +
#highlight the counties i use
geom_polygon(data = counties,
aes(x = long, y = lat, group = group),
fill = "darkgrey", color = "black") +
#put fort campbell (palmyra rd as a point)
geom_point(data = fort_campbell,
aes(x = x, y = y),
color = "red",
size = 2,
stroke = 1) +
coord_fixed(xlim = c(-90, -82), ylim = c(33.5, 39)) +
scale_x_continuous(breaks = seq(-91, -83, by = 1)) +
scale_y_continuous(breaks = seq(34, 39, by = 1)) +
xlab("Longitude") + ylab("Latitude") + ggtitle("Fort Campbell Study Area") +
theme_classic() +
theme(
panel.grid = element_blank()
) +
annotation_scale(
location = "tl",
width_hint = 0.3,
style = "ticks",
text_cex = 0.8
) +
annotation_north_arrow(
location = "bl",
which_north = "true",
style = north_arrow_nautical(),
height = unit(0.8, "cm"),
width = unit(0.8, "cm")
)
## Using plotunit = 'm'
## Warning in draw_panel(...): True north is not meaningful without coord_sf()
Now, let’s view the sites where I caught red bats! Yippe!!!
sites <- read.csv("netting_sites_2025.csv")
#make a interactive map
sites$Color <- c("hotpink", "darkblue", "purple", "green", "yellow", "brown", "orange", "black")
leaflet(data = sites) %>%
addProviderTiles(providers$OpenStreetMap, group = "Satellite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Road Map") %>%
addProviderTiles(providers$Esri.WorldTopoMap, group = "Terrain") %>%
addCircleMarkers(
lng = ~ Longitude,
lat = ~Latitude,
color = ~Color,
fillColor =~Color,
fillOpacity =~ 0.8,
popup = ~paste("Latitude:", Latitude, "<br>Longitude:", Longitude)
)%>%
fitBounds(~min(Longitude), ~min(Latitude), ~max(Longitude), ~max(Latitude)) %>%
addLayersControl(
baseGroups = c("Road Map", "Satellite", "Terrain"),
options = layersControlOptions(collapsed = FALSE)
)%>%
addScaleBar(position = "bottomleft") %>%
addLayersControl(
baseGroups = c("Road Map", "Satellite", "Terrain"),
options = layersControlOptions(collapsed = FALSE)
)
The red outline indicates the entirety of Fort Campbell. The sites are differentiated by color.
library(knitr)
kable(sites[, c("Sites", "Latitude", "Longitude", "Color")],
col.names = c("Site", "Latitude", "Longitude", "Color"),
)
| Site | Latitude | Longitude | Color |
|---|---|---|---|
| 23 | 36.61840 | -87.61080 | hotpink |
| 109 | 36.58150 | -87.63680 | darkblue |
| 324 | 36.56588 | -87.51125 | purple |
| 113 | 36.60190 | -87.56640 | green |
| 4 | 36.57450 | -87.51200 | yellow |
| 6 | 36.65740 | -87.77370 | brown |
| 116 | 36.62240 | -87.77920 | orange |
| 2 | 36.66480 | -87.78880 | black |
sites <- read.csv("netting_sites_2025.csv")
#make images for markers
sites_markers <-
c("red_01.PNG",
"red_02.PNG",
"red_03.PNG",
"red_04.PNG",
"red_05.PNG",
"red_06.PNG",
"red_07.PNG",
"red_08.PNG"
)
site_icon <- makeIcon(sites_markers, iconWidth = 35, iconHeight = 35)
#make a interactive map
sites$Color <- c("hotpink", "darkblue", "purple", "green", "yellow", "brown", "orange", "black")
leaflet(data = sites) %>%
addProviderTiles(providers$OpenStreetMap, group = "Satellite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Road Map") %>%
addProviderTiles(providers$Esri.WorldTopoMap, group = "Terrain") %>%
addMarkers(
lng = ~ Longitude,
lat = ~Latitude,
icon = site_icon,
popup = ~paste("Latitude:", Latitude, "<br>Longitude:", Longitude)
) %>%
fitBounds(~min(Longitude), ~min(Latitude), ~max(Longitude), ~max(Latitude)) %>%
addLayersControl(
baseGroups = c("Satellite"),
options = layersControlOptions(collapsed = FALSE)
)%>%
fitBounds(~min(Longitude), ~min(Latitude), ~max(Longitude), ~max(Latitude)) %>%
addLayersControl(
baseGroups = c("Road Map", "Satellite", "Terrain"),
options = layersControlOptions(collapsed = FALSE)
)%>%
addScaleBar(position = "bottomleft") %>%
addLayersControl(
baseGroups = c("Road Map", "Satellite", "Terrain"),
options = layersControlOptions(collapsed = FALSE)
)